(1) Technical Field
The present invention relates to delay locked loop circuits (DLLs). More particularly, the present invention relates to self-test solutions for use with circuitry having two or more delay locked loops.
(2) Description of the Related Art
Increasing processing speeds on computers and other devices require memory and other circuitry to operate within strict timing requirements. Timing constraints are often small enough that the layout of the components, temperature, or both must be considered or compensated for within the circuitry. Accordingly, DDR memory controllers and other circuits use DLLs to maintain specific timing requirements. Circuitry in the DLL uses a feedback loop in an attempt to find the frequency of the incoming periodic signal. Variable delay buffers in the DLL are adjusted until the output signal matches or locks onto the incoming signal. Once locked, the DLL may provide a variety of clock-control related services including phase/delay control, frequency multiplication, and frequency division.
Configurable DLLs may provide these different delays within a circuit to accommodate different design requirements. In particular, a DLL may introduce different delays to either advance or retreat a clock signal and fine tune the timing in a given circuit. For example, this may be useful for memory controllers and other circuitry with multiple timing modalities and features like ‘overclocking’. In these situations, the reliability of the DLL has even greater importance as the timing requirements are not fixed but dynamic and changing.
Unfortunately, DLLs that do not work properly may introduce timing problems in the circuitry that are hard to troubleshoot. For example, faulty DLLs in a DDR memory controller may cause intermittent timing problems in the memory that are difficult to reproduce. Indeed, DLLs with more serious defects may even contribute to the outright failure of a DDR memory controller or other circuitry. Consequently, a solution is needed for testing the operation of these DLLs.